package com.golden.procedure.service;

import com.golden.procedure.domain.WorkOrderBookDO;
import com.golden.procedure.domain.WorkOrderExchangeDO;
import com.golden.procedure.query.WorkOrderBookQueryDO;
import com.golden.procedure.result.ResultDO;

/**
 * 工单预约服务管理 <b>Description:</b><br>
 * 
 * @author Reading.Reagan</a>
 * @version 1.0
 * @Note <b>ProjectName:</b> procedure-api <br>
 *       <b>PackageName:</b> com.golden.procedure.service <br>
 *       <b>ClassName:</b> IWorkOrderYYService <br>
 *       <b>Date:</b> 2018年9月21日 上午11:44:24
 */
public interface IWorkOrderBookService {

	/**
	 * 查询工单预约列表 <b>Description:通过工位、席位查询预订的工单信息</b><br>
	 * 
	 * @param queryDO
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年9月19日 下午4:10:05 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO query(WorkOrderBookQueryDO queryDO);

	/**
	 * 查询已预约的工单 <b>Description:工单调换时，通过服务区域、时段及客户信息进行多表联合查询</b><br>
	 * 
	 * @param queryDO
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年9月19日 下午4:10:05 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO queryBooked(WorkOrderBookQueryDO queryDO);

	/**
	 * 预约工单 <b>Description: 上摄控任务节点，同时保存任务记录</b><br>
	 * 
	 * @param domain
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年9月20日 下午3:43:42 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO booking(WorkOrderBookDO domain);

	/**
	 * 工单改期 <b>Description:</b><br>
	 * 
	 * @param WorkOrderDO
	 *            domain
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年9月20日 下午6:14:42 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO changeDate(WorkOrderBookDO domain);

	/**
	 * 工单对调 <b>Description:</b><br>
	 * 
	 * @param WorkOrderExchangeDO
	 *            domain
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年9月20日 下午6:14:42 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO exchangeDate(WorkOrderExchangeDO domain);

	/**
	 * 工单取消 <b>Description:</b><br>
	 * 
	 * @param WorkOrderDO
	 *            domain
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年9月20日 下午6:14:42 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO cancel(WorkOrderBookDO domain);

}
